תכנות בשפת C פרק שלישי: בקרת זרימה שייקה בילו יועץ ומרצה בכיר למדעי המחשב וטכנולוגית מידע מומחה למערכות מידע חינוכיות, אקדמיות ומנהליות

Σχετικά έγγραφα
תרגול פעולות מומצאות 3

מבני בקרה ב C שעור מס. 2 דר' דרור טובי, המרכז האוניברסיטאי אריאל בשומרון.

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

משפטי בקרה ולולאות שעור מס. 3 כל הזכויות שמורות דר' דרור טובי המרכז האוניברסיטאי אריאל

תרגיל 13 משפטי רול ולגראנז הערות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

חורף תש''ע פתרון בחינה סופית מועד א'

שאלה 1 V AB פתרון AB 30 R3 20 R

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

תרגול 8: מטלאב לולאות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

סיכום- בעיות מינימוםמקסימום - שאלון 806

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

גבול ורציפות של פונקציה סקלרית שאלות נוספות

ניהול תמיכה מערכות שלבים: DFfactor=a-1 DFt=an-1 DFeror=a(n-1) (סכום _ הנתונים ( (מספר _ חזרות ( (מספר _ רמות ( (סכום _ ריבועי _ כל _ הנתונים (

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

ל הזכויות שמורות לדפנה וסטרייך

תרגול מס' 6 פתרון מערכת משוואות ליניארית

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

מתמטיקה בדידה תרגול מס' 2

Logic and Set Theory for Comp. Sci.

סיכום חקירת משוואות מהמעלה הראשונה ומהמעלה השנייה פרק זה הינו חלק מסיכום כולל לשאלון 005 שנכתב על-ידי מאיר בכור

תרגיל 7 פונקציות טריגונומטריות הערות

3-9 - a < x < a, a < x < a

gcd 24,15 = 3 3 =

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

התפלגות χ: Analyze. Non parametric test

Charles Augustin COULOMB ( ) קולון חוק = K F E המרחק סטט-קולון.

תוכן הפרק: ,best case, average case דוגמאות 1. זמן - נמדד באמצעות מס' פעולות סיבוכיות, דוגמאות, שיפור בפקטור קבוע האלגוריתם. וגודלם. איטרטיביים. לקלט.

"קשר-חם" : לקידום שיפור וריענון החינוך המתמטי

אלגברה מודרנית פתרון שיעורי בית 6

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

רשימת משפטים והגדרות

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

מתמטיקה בדידה תרגול מס' 12

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

מבני נתונים ואלגוריתמים תרגול #11

s ק"מ קמ"ש מ - A A מ - מ - 5 p vp v=

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

{ : Halts on every input}

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

אינפי - 1 תרגול בינואר 2012

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

אלגברה ליניארית 1 א' פתרון 7

Εισαγωγή στον Προγραμματισμό

לולאות קבוע, פסוק while פסוק do-while פסוק for

Υπολογισμός - Εντολές Ελέγχου

קיום ויחידות פתרונות למשוואות דיפרנציאליות

Domain Relational Calculus דוגמאות. {<bn> dn(<dn, bn> likes dn = Yossi )}

מתמטיקה בדידה תרגול מס' 5

"שקר". במקום המילים "אמת" או "שקר" משתמשים באותיות T ו- F (באנגלית truth אמת, false שקר (

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

Regular Expressions (RE)

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

אלגברה ליניארית 1 א' פתרון 2

מבני נתונים מדעי המחשב שאלון: מועד ב' תשע"ו מדעי המחשב פתרון בחינת הבגרות. Java שאלה 1. blog.csit.org.

אלגברה ליניארית (1) - תרגיל 6

ב ה צ ל ח ה! /המשך מעבר לדף/

הרצאה. α α פלוני, וכדומה. הזוויות α ל- β שווה ל-

מודלים חישוביים תרגולמס 5

תרגילים באמצעות Q. תרגיל 2 CD,BF,AE הם גבהים במשולש .ABC הקטעים. ABC D נמצאת על המעגל בין A ל- C כך ש-. AD BF ABC FME

אלגברה לינארית מטריצות מטריצות הפיכות

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ד (2014) דפי עזר

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

הגדרה: מצבים k -בני-הפרדה

רשימת בעיות בסיבוכיות

תורת הקומפילציה הרצאה 4 ניתוח תחבירי )Parsing( של דקדוקי LR(0) ו-( LR(1 )חזרה + המשך(

פולינומים אורתוגונליים

קורס מטלב לביולוגים שיעור מס' 1: סביבת עבודה

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

סדרות - תרגילים הכנה לבגרות 5 יח"ל

. {e M: x e} מתקיים = 1 x X Y

השאלות..h(k) = k mod m

מודלים חישוביים תרגולמס 7

אלגברה ליניארית 1 א' פתרון 8

תורת המספרים 1 פירוק לגורמים ראשוניים סיכום הגדרות טענות ומשפטים אביב הגדרות 1.2 טענות

מבני נתונים מבחן מועד ב' סמסטר חורף תשס"ו

המכללה האקדמית של ת"א-יפו בית הספר למדעי המחשב מבוא למדעי המחשב בשפת C: חוברת תרגילים

לוגיקה ותורת הקבוצות אביבתשס ז מבחןסופי מועדב בהצלחה!

לדוגמא : dy dx. xdx = x. cos 1. cos. x dx 2. dx = 2xdx לסיכום: 5 sin 5 1 = + ( ) הוכחה: [ ] ( ) ( )

ניתוח סיבוכיות - פונקציות רקורסיביות פיתוח טלסקופי

מבוא ללוגיקה מתמטית 80423

(ספר לימוד שאלון )

הגדרה 0.1 טיעון הוא תקף אם בכל פעם שההנחות נכונות גם המסקנה נכונה.

נספח לפרק 10 דוגמא לאנליזה של מכונת מצבים ננסה להבין את פעולתה של מ כונת המצבים הבאה : Input X. q 0 q 1. output D FF-0 D FF-1. clk

מתמטיקה בדידה תרגול מס' 13

פרקי מבוא במדעי המחשב

-107- גיאומטריה זוויות מבוא מטרתנו בפרק זה היא לחזור על המושגים שנלמדו ולהעמיק את הלימוד בנושא זה.

תורת הגרפים - סימונים

טריגונומטריה הגדרות הפונקציות הטריגונומטריות הבסיסיות

א. חוקיות תשובות 1. א( קבוצות ספורט ב( עצים ג( שמות של בנות ד( אותיות שיש להן אות סופית ; ה( מדינות ערביות. 2. א( שמעון פרס חיים הרצוג. ב( לא.

Transcript:

תכנות בשפת C פרק שלישי: בקרת זרימה שייקה בילו יועץ ומרצה בכיר למדעי המחשב וטכנולוגית מידע מומחה למערכות מידע חינוכיות, אקדמיות ומנהליות

תזכורת: שימוש במשתנים מהו משתנה הגדרת משתנים ;int i ; char c= a קלט/פלט של משתנים. d,%f, %g, %e, %c, %lf% פורמטים: % ); printf( %g, average); scanf( %lf, &num פעולות על משתנים.; c = a; b=5 השמה: פעולות חשבון:,+,-,*,/.% תשומת-לב לדיוק וטווח. למשל 0=3/4. להקפיד לא לחלק באפס (זה גורם לתוכנית לעוף). Shayke Bilu 2

תזכורת: דוגמא להדפסת משתנים #include <stdio.h> int main() { double a,b,c; } a = 2.51; b = 2; c = a*b; a printf( %g * %g = %g\n", a,b,c); return 0; = 2 5.022.51 הפלט: 2.51 Shayke Bilu 3 *

תזכורת: תוכנית לתרגום מפרנהייט לצלזיוס #include <stdio.h> int main() { double cels, fahr; printf("please enter a fahrenheit temperature:\n"); scanf("%lf", f",&fahr); fahr); הגדרת המשתנים קליטת ערך למשתנה הדפסת התוצאה cels = 5*(fahr-32)/9; printf("this is equal to %f degrees celsius\n", cels); Shayke Bilu 4

עיגול בהדפסת משתנים כשמדפיסים מספר ממשי ניתן לציין את מספר 4f.% הספרות שיודפסו אחרי הנקודה. למשל: במידת הצורך יתבצע עיגול. למשל: printf( %.2f.2f, 123.456); 123.46 יודפס Shayke Bilu 5

הטיפוסchar תזכורת: כמספר (תו) נשמר בזיכרון המחשב char גםם ה- ASCII טבלת הקומפיילר מתרגם מתו למספר באמצעות כל מה שצריך לזכור בקשר לטבלה: כל תו שאפשר להדפיס נמצא בטבלה (גם רווח ו- ( n\ האותיות האותיות נמצאות בטבלה לפי הסדר A - Z' נמצאות בטבלה לפי הסדר a - z' הספרות '0'-'9' נמצאות גם הן לפי הסדר Shayke Bilu 6

תזכורת: תווים כמספרים #include<stdio.h> int main() { char i = A'; זה כמו 65=i ;char printf( i as a character is: %c\n", i); printf("i as an integer is: %d\n", i); printf("the character after %c is: %c\n", i, i+1); i as a character is: A i as a number is: 65 The character after A is: B } return 0; Shayke Bilu 7

ב- scanf למה בעצם צריך & הסימון & משמעותו הכתובת של המשתנה בזיכרון. כלומר, המקום שאליו הקלט צריך להיכנס scanf( %d %lf, student_num, average); טעות!!! יכתוב בכתובות הלא נכונות student_num address: 1760 average address: 7510 Shayke Bilu 8

ב- scanf למה בעצם צריך & הסימון & משמעותו הכתובת של המשתנה בזיכרון להיכנס כלומר, המקום שאליו הקלט צריך scanf( %d %lf, &student_num, &average); תקין! יכתוב בכתובות 1760 ו- 7510 student_num 17 address: 1760 average 85 address: 7510 Shayke Bilu 9

scanf נקודות נוספות לגבי Shayke Bilu 10 כשקולטים מספרים: שיפריד בין המספרים. white המחשב מצפה ל- space רווח, טאב, שורה חדשה... המספרים. בקריאת white ידלג על ה- space scanf מספרים מופרדים ע"י scanf( %d%d,&i,&j); 12 34 white space 12 34 מספרים מופרדים ע"י white space 12,34 מספרים מופרדים ע"י סימן, scanf( %d,%d,&i,&j); 12+ 34 מספרים מופרדים ע"י סימן + scanf( %d %d,&i,&j); scanf( %d + %d,&i,&j);

scanf נקודות נוספות לגבי כשקולטים תווים: רווחים נחשבים לחלק מהקלט. scanf( %c%c,&i,&j); תווים המופיעים ברצף ab scanf( %c %c,&i,&j); תווים מופרדים ע"י רווח a b Shayke Bilu 11

scanf נקודות נוספות לגבי אם הקלדנו יותר ערכים ממה שהפונקציה ציפתה התווים הבאים ישמשו כקלט ל- הבא. scanf scanf( %d, &i); 12 34 scanf( %d, &j); Shayke Bilu 12 אם הקלדנו בין שתי פקודות קלט של תווים Enter התו השני שיקרא הוא תו ירידת-השורה ('('\n'). scanf( %c, &tav1); a scanf( %c, &tav2); מכיל tav1 עכשיו נוסף). מכיל tav2 ו- a n\ (לא נוכל להכניס תו

scanf נקודות נוספות לגבי אם רוצים לקלוט מספר תווים ברצף: אפשר לכתוב את כולם בשורה אחת ובסוף להקליד.Enter scanf( %c, &tav1); ab scanf( %c, &tav2); המפרידים בין התווים. לדלג על סימני ה-\ n או לגרום ל- scanf scanf( %c, &tav1); a scanf( \n \n%c, &tav2); b Shayke Bilu 13 מכיל tav1 עכשיו מכיל tav2 ו- a. b

אפשרות נוספת לקלט/פלט של תווים הפונקציה :()getchar קולטת תו מהמשתמש. שקול ל: ;(scanf( %c, &character הפונקציה :()putchar מדפיסה תו למסך. שקול ל: ;(printf( %c, character white spaces (טאב,רווח,ירידת שורה) Shayke Bilu 14 נחשבים כתווים רגילים עבור הפונקציות הללו

שאלות נוספות על השיעור הקודם?

עוד על משתנים רישום מקוצר של פעולות חשבון עוד קצת על טיפוסי משתנים Shayke Bilu 16

כתיבה מקוצרת של פעולות ;a += 2 ;b -= 3 ;c *= 4 ;d /= 5 ;e %= 5 ;a = a + 2 ;b = b - 3 ;c = c * 4 ;d = d / 5 ;e = e % 5 Shayke Bilu 17

כתיבה מקוצרת של פעולות ++;f ;f = f + 1 קודם נבצע את הפעולה ואח"כ נקדם את ערך המשתנה ב- 1 : j שווה ל- 5. i שווה ל- 6. ;i = 5 ++;j = i ;f++ ;f = f + 1 ואח"כ נבצע את קודם נקדם את ערך המשתנה ב- 1 הפעולה: j שווה ל- 6. i שווה ל- 6. ;i = 5 ;j = ++i Shayke Bilu 18

כתיבה מקוצרת של פעולות --;g ;g = g - 1 קודם נבצע את הפעולה ואח"כ נוריד את ערך המשתנה ב- :1 j שווה ל- 5. i שווה ל- 4. ;i = 5 --;j = i ;g-- ;g = g - 1 ואח"כ נבצע את קודם נוריד את ערך המשתנה ב- 1 הפעולה: j שווה ל- 4. i שווה ל- 4. ;i = 5 ;j = --i Shayke Bilu 19

ייצוג ערכי משתנים במחשב המחשב מכיר רק מספרים. המחשב מבין רק את שפת ה- 0,1. ערכם של משתנים מיוצג כמספר שהמחשב מבין Shayke Bilu 20

ייצוג מספר בעזרת בסיס (10 0 ) 10 בסיס אחדות הספרה הימנית ביותר מייצגת (10 עשרות ) 1 הספרה הבאה מייצגת מאות ) 2 (10 הספרה הבאה 56023 בבסיס 10 5 5*10 4 6 6*10 3 0 0*10 2 2 2*10 1 3 3*10 0 Shayke Bilu 21

ייצוג מספר בעזרת בסיס 2 25 בבסיס 1 1*2 4 בבסיס 2 ו- 1. יש רק שתי ספרות: 0 כל ספרה מייצגת חזקה של 1 1*2 3.2 0 0*2 2 0 0*2 1 1 1*2 0 סימן +) (- Shayke Bilu 22 נקבע ע"י הביט הראשון מספר ממשי מיוצג ע"י שני מספרים שלמים

ייצוג בינארי במחשב - ספרה בינארית בודדת שמיניית ביטים. - משתמש בבייט אחד של זיכרון. char ברוב הקומפיילרים תופס - float בתים 4 bit byte ו- int בתים ברוב הקומפיילרים תופס 8 - double ( בייטים KiloByte 2 10 (=1024 קילו בייטים MegaByte 2 10 מגה בייטים GigaByte 2 10 Shayke Bilu 23

משתנים ללא סימן unsigned מוסיפים בהגדרה משמש למספרים חיוביים בלבד!!! מגדיל את הטווח פי 2 ; unsigned int i=3999999999 ההדפסה נעשית עם %u Shayke Bilu 24

משתנים קבועים משמשים לערך שאינו משתנה במהלך התכנית למשל - π חוסך חזרה על מספרים מונע שינוי הערך בטעות בהגדרה const מוסיפים ; const double pai=3.141592654 Shayke Bilu 25

טיפוסים בסיסיים נוספים מספר שלם long בתים בדרך כלל תופס 8 מספר שלם short בתים בזיכרון) 2) 2 15 - לבין 2 15 בדרך-כלל בין מאפשר לחסוך זיכרון כשעובדים עם מספרים קטנים. מספר ממשי עם דיוק וטווח גדולים יותר long double בתלות במחשב ובקומפיילר. השימוש בטיפוסים אלה פחות נפוץ. Shayke Bilu 26

שאלות נוספות על משתנים?

בקרת זרימה

מה לדעתכם עושה התוכנית הבאה? #include <stdio.h> int main() { קלוט 2 מספרים שלמים מהמשתמש int a, b, max; scanf( %d%d, &a, &b); ייתבצע רק אם התנאי מתקיים max = a; if (max < b) max = b; printf( The maximum is %d\n, max); Shayke Bilu 29 return 0; הדפס את המספר הגדול יותר למסך

מה זאת בקרת זרימה? באופן רגיל, תוכנית מתבצעת שורה-אחרי-שורה לפי הסדר לפעמים נרצה שהפקודות שיבוצעו יקבעו ע"י הקלט (או ע"י חישובים אחרים בתכנית): יתבצע רק אם תנאי כלשהו מתקיים יתבצע רק אם התנאי לא מתקיים )if ( condition }...... { else }...... { Shayke Bilu 30

בקרת זרימה נושאים if-else משפטי תנאים אפשריים שילוב של תנאים switch משפטי Shayke Bilu 31

if פקודת מאפשר לבצע פקודה (או קבוצת פקודות) כתלות בתנאי מסוים. המבנה: if תנאי) פקודה ( ; if (i % 2 == 0) printf ( i is even ); למשל: Shayke Bilu 32

בקרת זרימה - דוגמא #include <stdio.h> int main() { int a, b, max; scanf( %d%d, &a, &b); max = a; if (max < b) if max = b; הפקודה הבאה מתבצעת רק אםb max < printf( The maximum is %d\n, max); Shayke Bilu 33

איזה תנאים אפשר לבטא פעולות השוואה רגילות: > < >= <= )if (a == b );printf( the same numbers\n )if (a!= b );printf( not the same numbers\n שוויון: Shayke Bilu 34 == שוני:

ifהמשך - משפט קבוצת פקודות: אפשר גם להתנות ביצוע של )תנאי)) if { פקודות } Shayke Bilu 35

if-else משפט ניתן לציין גם פקודה (או פקודות) if אחרי משפט מתקיים: שתתבצע במקרה שהתנאי לאא if ( תנאי)פקודה ; else פקודה; if (i % 2 == 0) printf ( i is even ); else printf( i is odd ); למשל: Shayke Bilu 36

if-else משפט של פקודות, נשתמש בסוגריים קבוצה עבור מסולסלים. else { פקודות } Shayke Bilu 37

תנאים מורכבים קינון תנאים לפעמים נדרשים תנאים מורכבים. ציון צריך להיות גדול או שווה ל- 0..100 ציון צריך להיות קטן או שווה ל- if (grade >= 0) if (grade <= 100) printf( The grade is in range\n ); Shayke Bilu 38

שילוב תנאים - פעולות לוגיות יש 33 ש בפעולות לוגיות, שיכולות לשלב בהרבה מקרים נוח להשתמש כמה תנאים. AND, OR, NOT פעולות לוגיות: (וגם) דורש ששני התנאים יתקיימו AND - && if ((grade >= 0) && (grade <= 100)) if (grade >= > 0) if (grade <= 100) Shayke Bilu 39

פעולות לוגיות - דוגמא #include <stdio.h> int main() תוכנית לחישוב ציון סופי בקורס { double exam, exercises, final; printf( Enter your exam grade and exercise grade ); scanf( %lf %lf, &exam, &exercises); if ((exam >= 60) && (exercises >= 60)) { } else final = 0.8 * exam + 0.2 * exercises; printf( You passed your grade is %g \n, final); מניחים כאן שהקלט תקין. בדרך-כלל דווקא נרצה לבדוק את תקינות הקלט ולפעול אחרת אם הקלט לא תקין (למשל לתת הודעה למשתמש ולסיים). Shayke Bilu 40

שילוב תנאים - פעולות לוגיות נוספות התנאים שלפחות אחד (או) - דורש if ((a>5) (a<-5)) OR- יתקיים (שלילה) - דורש שהתנאי יתקיים. לאא NOT -! if (a>5) if (!(a<=5)) סדר הקדימות הוא: יבוצע ראשון). NOT, AND, OR (NOT Shayke Bilu 41

תנאים כמספרים מתורגם ע"י המחשב תנאי.false) לא נכון (0 מספר שונה מ- true) נכון ) לערך מספרי:.0 (4<3) מתורגם לערך 0. ערך מספרי: במקום תנאי ניתן לרשום ביטוי שיש לו ערך - התנאי לא מתקיים.(false)) 0 כל ערך אחר - התנאי מתקיים.(true)) (if(0 למשל, המשמעות של לא תבוצע. היא שהפקודה Shayke Bilu 42

תנאים - המשך? בדיוק כמו (a!=0) if (if (a מה המשמעות של מה המשמעות של? (if (a=5 ששווה לערך כשרושמים פקודת השמה, מתקבל ערך ששמנו במשתנה. לכן הערך של ((5=a) הוא 5 כלומר, תנאי שתמיד מתקיים! == במקום שימו לב לא לרשום = Shayke Bilu 43

פעולות לוגיות על מספרים דוגמא X = 0; Y = 1; Z = 1; מה יודפס בקטע התוכנית הבא? if (X && Y Z) printf( True\n ); else X&&Y printf( False\n ); 0&&1 0. 1 קודם מבוצע ה- :AND 0 Z 0 1 1 2. אחרי זה מבוצע ה- :OR אם סדר הפעולות היה משתנה ע"י סוגריים: (X && (Y Y Z)) Z ) (0 && (1 1)) 0 Shayke Bilu 44

פעולות לוגיות עוד על סדר הביצוע סדר הפעולות: ל-! (not)) יש את הקדימות הגבוהה ביותר. אחרי כן הפעולות אריתמטיות.(%,/,*,-,+) וכו'). < אחריהן פעולות ההשוואה ((==, ו- && ולבסוף, פעולות לוגיות. דוגמאות לתנאים: (5+4>8) 9>8 1 0 >= 0 1 1 1 1 Shayke Bilu 45

סיכום-ביניים מהי בקרת זרימה משפטי if-else תנאים לוגיים פעולות לוגיות שאלות?

בחירה בין יותר משני מצבים כשיש בחירה בין מצבים רבים אפשר לרשום: if ( תנאי) פקודה else if תנאי)תנאי)) פקודה else if תנאי)תנאי)) פקודה else פקודה (כל פקודה יכולה להיות בלוק של פקודות בתוספת סוגריים מסולסלים) Shayke Bilu 47

בחירה בין יותר משני מצבים Shayke Bilu 48 לפי סדר קירבה if -ים ים מתייחסים ל- ה- else אחורה). למשל: (מה- else בשביל הקריאות נדאג ש- else if תנאי)) פקודה else if תנאי)תנאי)) if תנאי)תנאי)) פקודה else פקודה else פקודה יופיע מתחת ל- if התואם

בחירה בין יותר משני מצבים - דוגמא תרגום לציון אמריקאי if (grade >= 90) printf( A\n ); else if (grade >= 80) printf( B\n ); else if (grade >= 70) else?90?80 printf( C\n ); האם הציון מעל printf( Failed\n ); האם הציון מעל האם הציון מעל 70? Shayke Bilu 49

SWITCH בחירה בין יותר משני מצבים - קבועים, קיימת אם התנאים הם השוואה לערכים פקודה נוחה יותר,switch ולאחר מכן קודם נדגים שימוש בפקודת נתאר את חלקיה השונים Shayke Bilu 50

switchדוגמא - char grade; scanf( %c, &grade); switch (grade) מה עושה קטע התוכנית הזה? מתרגם ציון אמריקאי לטווח מספרים { case A : printf( 90 100\n ); break; case B : printf( 80 89\n ); break; Shayke Bilu 51 case C :

switchדוגמא: תרגום ציון אמריקאי - char grade; scanf( %c, &grade); הביטוי שערכו נבדק הוא יכול להיות כל ביטוי מטיפוס בדיד (תו או מספר שלם). switch (grade) { case A : printf( 90 100\n ); break; case B : printf( 80 89\n ); break; Shayke Bilu 52 case C :

switchדוגמא: תרגום ציון אמריקאי - char grade; scanf( %c, &grade); switch (grade) { הביטוי שערכו נבדק הוא יכול להיות כל ביטוי מטיפוס בדיד (תו או מספר שלם). הבדיקה היא אם הביטוי הנ"ל שווה לאחד מהקבועים הרשומים (לפי הסדר) case A : printf( 90 100\n ); break; case B : printf( 80 89\n ); break; Shayke Bilu 53 case C :

switchדוגמא: תרגום ציון אמריקאי - char grade; scanf( %c, &grade); switch (grade) { case A : printf( 90 100\n ); break; הביטוי שערכו נבדק הוא יכול להיות כל ביטוי מטיפוס בדיד (תו או מספר שלם). הבדיקה היא אם הביטוי הנ"ל שווה לאחד מהקבועים הרשומים (לפי הסדר) אם נמצא שוויון, כל הפקודות משם ועד סוף ה- switch מבוצעות (אפשריים גם בלוקים של פקודות) case B : printf( 80 89\n ); break; Shayke Bilu 54 case C :

switchדוגמא: תרגום ציון אמריקאי - char grade; scanf( %c, &grade); switch (grade) { case A : printf( 90 100\n ); break; case B : printf( 80 89\n ); הביטוי שערכו נבדק הוא יכול להיות כל ביטוי מטיפוס בדיד (תו או מספר שלם). הבדיקה היא אם הביטוי הנ"ל שווה לאחד מהקבועים הרשומים (לפי הסדר) אם נמצא שוויון, כל הפקודות משם ועד סוף ה- switch מבוצעות אפשריים גם בלוקים של פקודות)) אם מופיעה הפקודה break קופצים לפקודה הראשונה שאחרי ה- switch break; case C : Shayke Bilu 55

switchדוגמא: תרגום ציון אמריקאי - char grade; scanf( %c, &grade); switch (grade) { הביטוי שערכו נבדק הוא יכול להיות כל ביטוי מטיפוס בדיד (תו או מספר שלם). הבדיקה היא אם הביטוי הנ"ל שווה לאחד מהקבועים הרשומים (לפי הסדר) אם נמצא שוויון, כל הפקודות משם ועד סוף ה- switch מבוצעות אפשריים גם בלוקים של פקודות)) אם מופיעה הפקודה break קופצים לפקודה הראשונה שאחרי ה- switch case A : printf( 90 100\n ); break; case B : printf( 80 89\n ); break; case C : default מבוצע אם לא נמצאה אף התאמה (אופציונאלי) Shayke Bilu 56

switch מבנה כללי של בדיד תוצאתו היא מס' שלם או תו switch ביטוי בדיד)) { קבוע 1 : case פקודה או פקודות break; (אופציונלי) קבוע 2 פקודה או פקודות break; (אופציונלי) (אופציונלי) case :.. default: פקודה או פקודות Shayke Bilu 57

switch מבנה כללי של כשנרצה לעשות אותו דבר בכמה מקרים. לדוגמא: break לא נשים switch (tav) { case 0 : case 2 : case 4 : case 6 : השורה תבוצע אם התו הוא סיפרה זוגית case 8 : case 1 : case 3 : case 5 : printf( It s an even digit\n ); break; השורה תבוצע אם התו הוא סיפרה אי-זוגית בכל מקרה אחר Shayke Bilu 58

נקודה לתשומת לב הן מילים בשפת C. מילים שמורות. if, else, switch כגון: להשתמש בהן כשמות משתנים או פונקציות. אסור Shayke Bilu 59

סיכום דיברנו היום על: מהי בקרת זרימה משפטי if-else תנאים לוגיים פעולות לוגיות פקודת switch

קורס תכנות שיעור שלישי שאלות נוספות?